package com.wyl.getGenericActualType;

/**
 * 学习如何获取泛型的实际类型
 * @author 吴宇亮 on 2022/8/3 10:26
 */
public class GenericType {

    public static void main(String[] args) {
//        ShipService service = new ShipServiceImpl();
//        //获取子类所属接口的参数化类型,cn.xxx.xxx.BasicAction<cn.xxx.xxx.Standard>
//        Type type = service.getClass().getGenericSuperclass();
//        //因为type是顶级接口没有定义任何方法，所以需要强转为子接口ParameterizedType
//        ParameterizedType parameterizedType = (ParameterizedType) type;
//        //通过子接口定义的getActualTypeArguments方法获取到实际参数类型,<cn.xxx.xxx.Standard>
//        //返回参数为数组，因为Java中接口可以多实现
//        Type[] types = parameterizedType.getActualTypeArguments();
//        //获取数组中的实际参数类型
//        Class clzz = (Class) types[0];
//        System.out.println(clzz);

    }
}
